package 线程;
/*
    yield:线程的礼让，让出CPU的执行权限，让其它线程执行，当时礼让的时间不确定(如果CPU的资源不紧张的话，就不礼让了)，所以不一定礼让成功
    join:线程的插队,插队的线程一旦插队成功，则肯定先执行完插入的线程的所有任务
 */
public class yield01 {
    public static void main(String[] args) throws InterruptedException {
        M m = new M();
        m.start();

        for (int i = 0; i < 20; i++) {
            Thread.sleep(1000);
            System.out.println("主线程" + i);
            if(i == 5){
                System.out.println("主线程让子线程");
//                m.join();
                Thread.yield();
                System.out.println("主线程再次开始");
            }
        }
    }
}

class M extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            try {
                Thread.sleep(1000);
                System.out.println("子线程" + i);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
